package org.domain.sigepac.repository.impl;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Query;

import org.domain.sigepac.Entity.AvaliacaoPsicogenese;
import org.domain.sigepac.Entity.GrupoPsicogenese;
import org.domain.sigepac.repository.RepositorioAvaliacaoPsicogenese;
import org.domain.sigepac.repository.RepositorioGenerico;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;



/**
 * @author bruno.canto
 */
@Name("repositorioAvaliacaoPsicogenese")
@AutoCreate
public class RepositorioAvaliacaoPsicogeneseImpl extends RepositorioGenerico<AvaliacaoPsicogenese>
    implements RepositorioAvaliacaoPsicogenese {

	public void atualizar(AvaliacaoPsicogenese antigo,AvaliacaoPsicogenese novo) {

		Query query=this.entityManager.createQuery("update AvaliacaoPsicogenese set aluno=:alunoNovo, turma=:turmaNovo, psicogenese=:psicogeneseNovo where aluno=:alunoAntigo and turma=:turmaAntigo and psicogenese=:psicogeneseAntigo").
				setParameter("alunoNovo", novo.getAluno()).
				setParameter("turmaNovo", novo.getTurma()).
				setParameter("psicogeneseNovo", novo.getPsicogenese()).
				setParameter("alunoAntigo", antigo.getAluno()).
				setParameter("turmaAntigo", antigo.getTurma()).
				setParameter("psicogeneseAntigo", antigo.getPsicogenese());
		query.executeUpdate();

	}

	public List<AvaliacaoPsicogenese> porGrupo(GrupoPsicogenese grupo) {

		List<AvaliacaoPsicogenese> tmp=new ArrayList<AvaliacaoPsicogenese>();
		List<AvaliacaoPsicogenese> lista=listar();

		for(AvaliacaoPsicogenese avaliacao:lista){
			if(avaliacao.getPsicogenese().getGrupo().equals(grupo))
				tmp.add(avaliacao);
		}

		return tmp;

	}

}
